<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mpspec.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/mpspec.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="Maybe">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X0FTTV9YODZfTVBTUEVDX0hfMA__"><span class="b">_ASM_X86_MPSPEC_H</span></a>
<a name="2" /><span class="Maybe">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X0FTTV9YODZfTVBTUEVDX0hfMA__"><span class="b">_ASM_X86_MPSPEC_H</span></a>
<a name="3" /><span class="Maybe">       3:</span> 
<a name="4" /><span class="Maybe">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">init</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="Maybe">       5:</span> 
<a name="6" /><span class="Maybe">       6:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">mpspec_def</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="7" /><span class="Maybe">       7:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">x86_init</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="8" /><span class="Maybe">       8:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">apicdef</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="9" /><span class="Maybe">       9:</span> 
<a name="10" /><span class="Maybe">      10:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">apic_version</span><span class="f">[</span><span class="f">]</span><span class="f">;</span>
<a name="11" /><span class="Maybe">      11:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">pic_mode</span><span class="f">;</span>
<a name="12" /><span class="Maybe">      12:</span> 
<a name="13" /><span class="False">      13:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_X86_32</span>
<a name="14" /><span class="False">      14:</span> 
<a name="15" /><span class="False">      15:</span> <span class="k">/*</span>
<a name="16" /><span class="False">      16:</span> <span class="k"> * Summit or generic (i.e. installer) kernels need lots of bus entries.</span>
<a name="17" /><span class="False">      17:</span> <span class="k"> * Maximum 256 PCI busses, plus 1 ISA bus in each of 4 cabinets.</span>
<a name="18" /><span class="False">      18:</span> <span class="k"> */</span>
<a name="19" /><span class="False">      19:</span> <span class="f">#</span><span class="n">if</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX0JBU0VfU01BTExfMA__"><span class="b">CONFIG_BASE_SMALL</span></a> <span class="f">==</span> <span class="c">0</span>
<a name="20" /><span class="False">      20:</span> <span class="f">#</span> <span class="n">define</span> <a href="cpu.c_macros_ref.html#_TUFYX01QX0JVU1NFU18w"><span class="b">MAX_MP_BUSSES</span></a>        <span class="c">260</span>
<a name="21" /><span class="False">      21:</span> <span class="f">#</span><span class="n">else</span>
<a name="22" /><span class="False">      22:</span> <span class="f">#</span> <span class="n">define</span> <a href="cpu.c_macros_ref.html#_TUFYX01QX0JVU1NFU18w"><span class="b">MAX_MP_BUSSES</span></a>        <span class="c">32</span>
<a name="23" /><span class="False">      23:</span> <span class="f">#</span><span class="n">endif</span>
<a name="24" /><span class="False">      24:</span> 
<a name="25" /><span class="False">      25:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_TUFYX0lSUV9TT1VSQ0VTXzA_"><span class="b">MAX_IRQ_SOURCES</span></a>        <span class="c">256</span>
<a name="26" /><span class="False">      26:</span> 
<a name="27" /><span class="False">      27:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">int</span> <span class="b">def_to_bigsmp</span><span class="f">;</span>
<a name="28" /><span class="False">      28:</span> 
<a name="29" /><span class="False">      29:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_X86_NUMAQ</span>
<a name="30" /><span class="False">      30:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">mp_bus_id_to_node</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_TUFYX01QX0JVU1NFU18w"><span class="b">MAX_MP_BUSSES</span></a><span class="f">]</span><span class="f">;</span>
<a name="31" /><span class="False">      31:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">mp_bus_id_to_local</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_TUFYX01QX0JVU1NFU18w"><span class="b">MAX_MP_BUSSES</span></a><span class="f">]</span><span class="f">;</span>
<a name="32" /><span class="False">      32:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">quad_local_to_mp_bus_id</span> <span class="f">[</span><a href="cpu.c_macros_ref.html#_TlJfQ1BVU18w"><span class="b">NR_CPUS</span></a><span class="f">/</span><span class="c">4</span><span class="f">]</span><span class="f">[</span><span class="c">4</span><span class="f">]</span><span class="f">;</span>
<a name="33" /><span class="False">      33:</span> <span class="f">#</span><span class="n">endif</span>
<a name="34" /><span class="False">      34:</span> 
<a name="35" /><span class="Maybe">      35:</span> <span class="f">#</span><span class="n">else</span> <span class="k">/* CONFIG_X86_64: */</span>
<a name="36" /><span class="Maybe">      36:</span> 
<a name="37" /><span class="Maybe">      37:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_TUFYX01QX0JVU1NFU18w"><span class="b">MAX_MP_BUSSES</span></a>        <span class="c">256</span>
<a name="38" /><span class="Maybe">      38:</span> <span class="k">/* Each PCI slot may be a combo card with its own bus.  4 IRQ pins per slot. */</span>
<a name="39" /><span class="Maybe">      39:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_TUFYX0lSUV9TT1VSQ0VTXzA_"><span class="b">MAX_IRQ_SOURCES</span></a>        <span class="f">(</span><a href="cpu.c_macros_ref.html#_TUFYX01QX0JVU1NFU18w"><span class="b">MAX_MP_BUSSES</span></a> <span class="f">*</span> <span class="c">4</span><span class="f">)</span>
<a name="40" /><span class="Maybe">      40:</span> 
<a name="41" /><span class="Maybe">      41:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* CONFIG_X86_64 */</span>
<a name="42" /><span class="Maybe">      42:</span> 
<a name="43" /><span class="False">      43:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_EISA</span>
<a name="44" /><span class="False">      44:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">mp_bus_id_to_type</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_TUFYX01QX0JVU1NFU18w"><span class="b">MAX_MP_BUSSES</span></a><span class="f">]</span><span class="f">;</span>
<a name="45" /><span class="Maybe">      45:</span> <span class="f">#</span><span class="n">endif</span>
<a name="46" /><span class="Maybe">      46:</span> 
<a name="47" /><span class="Maybe">      47:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_REVDTEFSRV9CSVRNQVBfMA__"><span class="b">DECLARE_BITMAP</span></a><span class="f">(</span><span class="b">mp_bus_not_pci</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TUFYX01QX0JVU1NFU18w"><span class="b">MAX_MP_BUSSES</span></a><span class="f">)</span><span class="f">;</span>
<a name="48" /><span class="Maybe">      48:</span> 
<a name="49" /><span class="Maybe">      49:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">int</span> <span class="b">boot_cpu_physical_apicid</span><span class="f">;</span>
<a name="50" /><span class="Maybe">      50:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">int</span> <span class="b">max_physical_apicid</span><span class="f">;</span>
<a name="51" /><span class="Maybe">      51:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">mpc_default_type</span><span class="f">;</span>
<a name="52" /><span class="Maybe">      52:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">mp_lapic_addr</span><span class="f">;</span>
<a name="53" /><span class="Maybe">      53:</span> 
<a name="54" /><span class="Maybe">      54:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1g4Nl9MT0NBTF9BUElDXzA_"><span class="b">CONFIG_X86_LOCAL_APIC</span></a>
<a name="55" /><span class="Maybe">      55:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">smp_found_config</span><span class="f">;</span>
<a name="56" /><span class="False">      56:</span> <span class="f">#</span><span class="n">else</span>
<a name="57" /><span class="False">      57:</span> <span class="f">#</span> <span class="n">define</span> <span class="b">smp_found_config</span> <span class="c">0</span>
<a name="58" /><span class="Maybe">      58:</span> <span class="f">#</span><span class="n">endif</span>
<a name="59" /><span class="Maybe">      59:</span> 
<a name="60" /><span class="Maybe">      60:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">get_smp_config</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>
<a name="61" /><span class="Maybe">      61:</span> <span class="f">{</span>
<a name="62" /><span class="Maybe">      62:</span>     <span class="b">x86_init</span><span class="f">.</span><span class="b">mpparse</span><span class="f">.</span><span class="b">get_smp_config</span><span class="f">(</span><span class="c">0</span><span class="f">)</span><span class="f">;</span>
<a name="63" /><span class="Maybe">      63:</span> <span class="f">}</span>
<a name="64" /><span class="Maybe">      64:</span> 
<a name="65" /><span class="Maybe">      65:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">early_get_smp_config</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>
<a name="66" /><span class="Maybe">      66:</span> <span class="f">{</span>
<a name="67" /><span class="Maybe">      67:</span>     <span class="b">x86_init</span><span class="f">.</span><span class="b">mpparse</span><span class="f">.</span><span class="b">get_smp_config</span><span class="f">(</span><span class="c">1</span><span class="f">)</span><span class="f">;</span>
<a name="68" /><span class="Maybe">      68:</span> <span class="f">}</span>
<a name="69" /><span class="Maybe">      69:</span> 
<a name="70" /><span class="Maybe">      70:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">find_smp_config</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>
<a name="71" /><span class="Maybe">      71:</span> <span class="f">{</span>
<a name="72" /><span class="Maybe">      72:</span>     <span class="b">x86_init</span><span class="f">.</span><span class="b">mpparse</span><span class="f">.</span><span class="b">find_smp_config</span><span class="f">(</span><span class="f">)</span><span class="f">;</span>
<a name="73" /><span class="Maybe">      73:</span> <span class="f">}</span>
<a name="74" /><span class="Maybe">      74:</span> 
<a name="75" /><span class="Maybe">      75:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1g4Nl9NUFBBUlNFXzA_"><span class="b">CONFIG_X86_MPPARSE</span></a>
<a name="76" /><span class="Maybe">      76:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">early_reserve_e820_mpc_new</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="77" /><span class="Maybe">      77:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">enable_update_mptable</span><span class="f">;</span>
<a name="78" /><span class="Maybe">      78:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">default_mpc_apic_id</span><span class="f">(</span><span class="m">struct</span> <span class="b">mpc_cpu</span> <span class="f">*</span><span class="b">m</span><span class="f">)</span><span class="f">;</span>
<a name="79" /><span class="Maybe">      79:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">default_smp_read_mpc_oem</span><span class="f">(</span><span class="m">struct</span> <span class="b">mpc_table</span> <span class="f">*</span><span class="b">mpc</span><span class="f">)</span><span class="f">;</span>
<a name="80" /><span class="Maybe">      80:</span> <span class="f">#</span> <span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1g4Nl9JT19BUElDXzA_"><span class="b">CONFIG_X86_IO_APIC</span></a>
<a name="81" /><span class="Maybe">      81:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">default_mpc_oem_bus_info</span><span class="f">(</span><span class="m">struct</span> <span class="b">mpc_bus</span> <span class="f">*</span><span class="b">m</span><span class="f">,</span> <span class="m">char</span> <span class="f">*</span><span class="b">str</span><span class="f">)</span><span class="f">;</span>
<a name="82" /><span class="False">      82:</span> <span class="f">#</span> <span class="n">else</span>
<a name="83" /><span class="False">      83:</span> <span class="f">#</span>  <span class="n">define</span> <span class="b">default_mpc_oem_bus_info</span> <a href="cpu.c_macros_ref.html#_TlVMTF8w"><span class="b">NULL</span></a>
<a name="84" /><span class="Maybe">      84:</span> <span class="f">#</span> <span class="n">endif</span>
<a name="85" /><span class="Maybe">      85:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">default_find_smp_config</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="86" /><span class="Maybe">      86:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">default_get_smp_config</span><span class="f">(</span><span class="m">unsigned</span> <span class="m">int</span> <span class="b">early</span><span class="f">)</span><span class="f">;</span>
<a name="87" /><span class="False">      87:</span> <span class="f">#</span><span class="n">else</span>
<a name="88" /><span class="False">      88:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">early_reserve_e820_mpc_new</span><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="f">{</span> <span class="f">}</span>
<a name="89" /><span class="False">      89:</span> <span class="f">#</span><span class="n">define</span> <span class="b">enable_update_mptable</span> <span class="c">0</span>
<a name="90" /><span class="False">      90:</span> <span class="f">#</span><span class="n">define</span> <span class="b">default_mpc_apic_id</span> <a href="cpu.c_macros_ref.html#_TlVMTF8w"><span class="b">NULL</span></a>
<a name="91" /><span class="False">      91:</span> <span class="f">#</span><span class="n">define</span> <span class="b">default_smp_read_mpc_oem</span> <a href="cpu.c_macros_ref.html#_TlVMTF8w"><span class="b">NULL</span></a>
<a name="92" /><span class="False">      92:</span> <span class="f">#</span><span class="n">define</span> <span class="b">default_mpc_oem_bus_info</span> <a href="cpu.c_macros_ref.html#_TlVMTF8w"><span class="b">NULL</span></a>
<a name="93" /><span class="False">      93:</span> <span class="f">#</span><span class="n">define</span> <span class="b">default_find_smp_config</span> <span class="b">x86_init_noop</span>
<a name="94" /><span class="False">      94:</span> <span class="f">#</span><span class="n">define</span> <span class="b">default_get_smp_config</span> <span class="b">x86_init_uint_noop</span>
<a name="95" /><span class="Maybe">      95:</span> <span class="f">#</span><span class="n">endif</span>
<a name="96" /><span class="Maybe">      96:</span> 
<a name="97" /><span class="Maybe">      97:</span> <span class="m">int</span> <span class="b">generic_processor_info</span><span class="f">(</span><span class="m">int</span> <span class="b">apicid</span><span class="f">,</span> <span class="m">int</span> <span class="b">version</span><span class="f">)</span><span class="f">;</span>
<a name="98" /><span class="Maybe">      98:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX0FDUElfMA__"><span class="b">CONFIG_ACPI</span></a>
<a name="99" /><span class="Maybe">      99:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">mp_register_ioapic</span><span class="f">(</span><span class="m">int</span> <span class="b">id</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="b">address</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="b">gsi_base</span><span class="f">)</span><span class="f">;</span>
<a name="100" /><span class="Maybe">     100:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">mp_override_legacy_irq</span><span class="f">(</span><span class="b">u8</span> <span class="b">bus_irq</span><span class="f">,</span> <span class="b">u8</span> <span class="b">polarity</span><span class="f">,</span> <span class="b">u8</span> <span class="b">trigger</span><span class="f">,</span>
<a name="101" /><span class="Maybe">     101:</span>                    <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="b">gsi</span><span class="f">)</span><span class="f">;</span>
<a name="102" /><span class="Maybe">     102:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">mp_config_acpi_legacy_irqs</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="103" /><span class="Maybe">     103:</span> <span class="m">struct</span> <span class="b">device</span><span class="f">;</span>
<a name="104" /><span class="Maybe">     104:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">mp_register_gsi</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="b">gsi</span><span class="f">,</span> <span class="m">int</span> <span class="b">edge_level</span><span class="f">,</span>
<a name="105" /><span class="Maybe">     105:</span>                  <span class="m">int</span> <span class="b">active_high_low</span><span class="f">)</span><span class="f">;</span>
<a name="106" /><span class="Maybe">     106:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* CONFIG_ACPI */</span>
<a name="107" /><span class="Maybe">     107:</span> 
<a name="108" /><span class="Maybe">     108:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEhZU0lEX0FSUkFZX1NJWkVfMA__"><span class="b">PHYSID_ARRAY_SIZE</span></a>    <a href="cpu.c_macros_ref.html#_QklUU19UT19MT05HU18w"><span class="b">BITS_TO_LONGS</span></a><span class="f">(</span><a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">)</span>
<a name="109" /><span class="Maybe">     109:</span> 
<a name="110" /><span class="Maybe">     110:</span> <span class="m">struct</span> <span class="b">physid_mask</span> <span class="f">{</span>
<a name="111" /><span class="Maybe">     111:</span>     <span class="m">unsigned</span> <span class="m">long</span> <span class="b">mask</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_UEhZU0lEX0FSUkFZX1NJWkVfMA__"><span class="b">PHYSID_ARRAY_SIZE</span></a><span class="f">]</span><span class="f">;</span>
<a name="112" /><span class="Maybe">     112:</span> <span class="f">}</span><span class="f">;</span>
<a name="113" /><span class="Maybe">     113:</span> 
<a name="114" /><span class="Maybe">     114:</span> <span class="m">typedef</span> <span class="m">struct</span> <span class="b">physid_mask</span> <span class="b">physid_mask_t</span><span class="f">;</span>
<a name="115" /><span class="Maybe">     115:</span> 
<a name="116" /><span class="Maybe">     116:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_cGh5c2lkX3NldF8w"><span class="b">physid_set</span></a><span class="f">(</span><span class="b">physid</span><span class="f">,</span> <span class="b">map</span><span class="f">)</span>            <span class="b">set_bit</span><span class="f">(</span><span class="b">physid</span><span class="f">,</span> <span class="f">(</span><span class="b">map</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">)</span>
<a name="117" /><span class="Maybe">     117:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cGh5c2lkX2NsZWFyXzA_"><span class="b">physid_clear</span></a><span class="f">(</span><span class="b">physid</span><span class="f">,</span> <span class="b">map</span><span class="f">)</span>        <span class="b">clear_bit</span><span class="f">(</span><span class="b">physid</span><span class="f">,</span> <span class="f">(</span><span class="b">map</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">)</span>
<a name="118" /><span class="Maybe">     118:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_cGh5c2lkX2lzc2V0XzA_"><span class="b">physid_isset</span></a><span class="f">(</span><span class="b">physid</span><span class="f">,</span> <span class="b">map</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_dGVzdF9iaXRfMA__"><span class="b">test_bit</span></a><span class="f">(</span><span class="b">physid</span><span class="f">,</span> <span class="f">(</span><span class="b">map</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">)</span>
<a name="119" /><span class="Maybe">     119:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cGh5c2lkX3Rlc3RfYW5kX3NldF8w"><span class="b">physid_test_and_set</span></a><span class="f">(</span><span class="b">physid</span><span class="f">,</span> <span class="b">map</span><span class="f">)</span>            \
<a name="120" /><span class="Maybe">     120:</span>     <span class="b">test_and_set_bit</span><span class="f">(</span><span class="b">physid</span><span class="f">,</span> <span class="f">(</span><span class="b">map</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">)</span>
<a name="121" /><span class="Maybe">     121:</span> 
<a name="122" /><span class="Maybe">     122:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cGh5c2lkc19hbmRfMA__"><span class="b">physids_and</span></a><span class="f">(</span><span class="b">dst</span><span class="f">,</span> <span class="b">src1</span><span class="f">,</span> <span class="b">src2</span><span class="f">)</span>                    \
<a name="123" /><span class="Maybe">     123:</span>     <span class="b">bitmap_and</span><span class="f">(</span><span class="f">(</span><span class="b">dst</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <span class="f">(</span><span class="b">src1</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <span class="f">(</span><span class="b">src2</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">)</span>
<a name="124" /><span class="Maybe">     124:</span> 
<a name="125" /><span class="Maybe">     125:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cGh5c2lkc19vcl8w"><span class="b">physids_or</span></a><span class="f">(</span><span class="b">dst</span><span class="f">,</span> <span class="b">src1</span><span class="f">,</span> <span class="b">src2</span><span class="f">)</span>                    \
<a name="126" /><span class="Maybe">     126:</span>     <span class="b">bitmap_or</span><span class="f">(</span><span class="f">(</span><span class="b">dst</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <span class="f">(</span><span class="b">src1</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <span class="f">(</span><span class="b">src2</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">)</span>
<a name="127" /><span class="Maybe">     127:</span> 
<a name="128" /><span class="Maybe">     128:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_cGh5c2lkc19jbGVhcl8w"><span class="b">physids_clear</span></a><span class="f">(</span><span class="b">map</span><span class="f">)</span>                    \
<a name="129" /><span class="Maybe">     129:</span>     <span class="b">bitmap_zero</span><span class="f">(</span><span class="f">(</span><span class="b">map</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">)</span>
<a name="130" /><span class="Maybe">     130:</span> 
<a name="131" /><span class="Maybe">     131:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cGh5c2lkc19jb21wbGVtZW50XzA_"><span class="b">physids_complement</span></a><span class="f">(</span><span class="b">dst</span><span class="f">,</span> <span class="b">src</span><span class="f">)</span>                \
<a name="132" /><span class="Maybe">     132:</span>     <span class="b">bitmap_complement</span><span class="f">(</span><span class="f">(</span><span class="b">dst</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <span class="f">(</span><span class="b">src</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">)</span>
<a name="133" /><span class="Maybe">     133:</span> 
<a name="134" /><span class="Maybe">     134:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cGh5c2lkc19lbXB0eV8w"><span class="b">physids_empty</span></a><span class="f">(</span><span class="b">map</span><span class="f">)</span>                    \
<a name="135" /><span class="Maybe">     135:</span>     <span class="b">bitmap_empty</span><span class="f">(</span><span class="f">(</span><span class="b">map</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">)</span>
<a name="136" /><span class="Maybe">     136:</span> 
<a name="137" /><span class="Maybe">     137:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cGh5c2lkc19lcXVhbF8w"><span class="b">physids_equal</span></a><span class="f">(</span><span class="b">map1</span><span class="f">,</span> <span class="b">map2</span><span class="f">)</span>                \
<a name="138" /><span class="Maybe">     138:</span>     <span class="b">bitmap_equal</span><span class="f">(</span><span class="f">(</span><span class="b">map1</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <span class="f">(</span><span class="b">map2</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">)</span>
<a name="139" /><span class="Maybe">     139:</span> 
<a name="140" /><span class="Maybe">     140:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cGh5c2lkc193ZWlnaHRfMA__"><span class="b">physids_weight</span></a><span class="f">(</span><span class="b">map</span><span class="f">)</span>                    \
<a name="141" /><span class="Maybe">     141:</span>     <span class="b">bitmap_weight</span><span class="f">(</span><span class="f">(</span><span class="b">map</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">)</span>
<a name="142" /><span class="Maybe">     142:</span> 
<a name="143" /><span class="Maybe">     143:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cGh5c2lkc19zaGlmdF9yaWdodF8w"><span class="b">physids_shift_right</span></a><span class="f">(</span><span class="b">d</span><span class="f">,</span> <span class="b">s</span><span class="f">,</span> <span class="b">n</span><span class="f">)</span>                \
<a name="144" /><span class="Maybe">     144:</span>     <span class="b">bitmap_shift_right</span><span class="f">(</span><span class="f">(</span><span class="b">d</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <span class="f">(</span><span class="b">s</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <span class="b">n</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">)</span>
<a name="145" /><span class="Maybe">     145:</span> 
<a name="146" /><span class="Maybe">     146:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_cGh5c2lkc19zaGlmdF9sZWZ0XzA_"><span class="b">physids_shift_left</span></a><span class="f">(</span><span class="b">d</span><span class="f">,</span> <span class="b">s</span><span class="f">,</span> <span class="b">n</span><span class="f">)</span>                \
<a name="147" /><span class="Maybe">     147:</span>     <span class="b">bitmap_shift_left</span><span class="f">(</span><span class="f">(</span><span class="b">d</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <span class="f">(</span><span class="b">s</span><span class="f">)</span><span class="f">.</span><span class="b">mask</span><span class="f">,</span> <span class="b">n</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_TUFYX0xPQ0FMX0FQSUNfMA__"><span class="b">MAX_LOCAL_APIC</span></a><span class="f">)</span>
<a name="148" /><span class="Maybe">     148:</span> 
<a name="149" /><span class="Maybe">     149:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">physids_coerce</span><span class="f">(</span><span class="b">physid_mask_t</span> <span class="f">*</span><span class="b">map</span><span class="f">)</span>
<a name="150" /><span class="Maybe">     150:</span> <span class="f">{</span>
<a name="151" /><span class="Maybe">     151:</span>     <span class="m">return</span> <span class="b">map</span><span class="f">-&gt;</span><span class="b">mask</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">;</span>
<a name="152" /><span class="Maybe">     152:</span> <span class="f">}</span>
<a name="153" /><span class="Maybe">     153:</span> 
<a name="154" /><span class="Maybe">     154:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">physids_promote</span><span class="f">(</span><span class="m">unsigned</span> <span class="m">long</span> <span class="b">physids</span><span class="f">,</span> <span class="b">physid_mask_t</span> <span class="f">*</span><span class="b">map</span><span class="f">)</span>
<a name="155" /><span class="Maybe">     155:</span> <span class="f">{</span>
<a name="156" /><span class="Maybe">     156:</span>     <a href="cpu.c_macros_ref.html#_cGh5c2lkc19jbGVhcl8w"><span class="b">physids_clear</span></a><span class="f">(</span><span class="f">*</span><span class="b">map</span><span class="f">)</span><span class="f">;</span>
<a name="157" /><span class="Maybe">     157:</span>     <span class="b">map</span><span class="f">-&gt;</span><span class="b">mask</span><span class="f">[</span><span class="c">0</span><span class="f">]</span> <span class="f">=</span> <span class="b">physids</span><span class="f">;</span>
<a name="158" /><span class="Maybe">     158:</span> <span class="f">}</span>
<a name="159" /><span class="Maybe">     159:</span> 
<a name="160" /><span class="Maybe">     160:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">physid_set_mask_of_physid</span><span class="f">(</span><span class="m">int</span> <span class="b">physid</span><span class="f">,</span> <span class="b">physid_mask_t</span> <span class="f">*</span><span class="b">map</span><span class="f">)</span>
<a name="161" /><span class="Maybe">     161:</span> <span class="f">{</span>
<a name="162" /><span class="Maybe">     162:</span>     <a href="cpu.c_macros_ref.html#_cGh5c2lkc19jbGVhcl8w"><span class="b">physids_clear</span></a><span class="f">(</span><span class="f">*</span><span class="b">map</span><span class="f">)</span><span class="f">;</span>
<a name="163" /><span class="Maybe">     163:</span>     <a href="cpu.c_macros_ref.html#_cGh5c2lkX3NldF8w"><span class="b">physid_set</span></a><span class="f">(</span><span class="b">physid</span><span class="f">,</span> <span class="f">*</span><span class="b">map</span><span class="f">)</span><span class="f">;</span>
<a name="164" /><span class="Maybe">     164:</span> <span class="f">}</span>
<a name="165" /><span class="Maybe">     165:</span> 
<a name="166" /><span class="Maybe">     166:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UEhZU0lEX01BU0tfQUxMXzA_"><span class="b">PHYSID_MASK_ALL</span></a>        <span class="f">{</span> <span class="f">{</span><span class="f">[</span><span class="c">0</span> <span class="f">...</span> <a href="cpu.c_macros_ref.html#_UEhZU0lEX0FSUkFZX1NJWkVfMA__"><span class="b">PHYSID_ARRAY_SIZE</span></a><span class="f">-</span><span class="c">1</span><span class="f">]</span> <span class="f">=</span> <span class="f">~</span><span class="c">0UL</span><span class="f">}</span> <span class="f">}</span>
<a name="167" /><span class="Maybe">     167:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UEhZU0lEX01BU0tfTk9ORV8w"><span class="b">PHYSID_MASK_NONE</span></a>    <span class="f">{</span> <span class="f">{</span><span class="f">[</span><span class="c">0</span> <span class="f">...</span> <a href="cpu.c_macros_ref.html#_UEhZU0lEX0FSUkFZX1NJWkVfMA__"><span class="b">PHYSID_ARRAY_SIZE</span></a><span class="f">-</span><span class="c">1</span><span class="f">]</span> <span class="f">=</span> <span class="c">0UL</span><span class="f">}</span> <span class="f">}</span>
<a name="168" /><span class="Maybe">     168:</span> 
<a name="169" /><span class="Maybe">     169:</span> <span class="m">extern</span> <span class="b">physid_mask_t</span> <span class="b">phys_cpu_present_map</span><span class="f">;</span>
<a name="170" /><span class="Maybe">     170:</span> 
<a name="171" /><span class="Maybe">     171:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">generic_mps_oem_check</span><span class="f">(</span><span class="m">struct</span> <span class="b">mpc_table</span> <span class="f">*</span><span class="f">,</span> <span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="172" /><span class="Maybe">     172:</span> 
<a name="173" /><span class="Maybe">     173:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">default_acpi_madt_oem_check</span><span class="f">(</span><span class="m">char</span> <span class="f">*</span><span class="f">,</span> <span class="m">char</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="174" /><span class="Maybe">     174:</span> 
<a name="175" /><span class="True">     175:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _ASM_X86_MPSPEC_H */</span>
<a name="176" /><span class="True">     176:</span> </pre>
  </body>
</html>
